package com.jt.demo6;

import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

/**
 * 第三天
 * Spring自动为该注解标识的类,通过反射实例化对象,交给Spring容器管理
 * Key : user(类名首字母小写)
 * value : 反射的对象
 * 类似于@Bean注解
 * @Component/@Bean区别:
 * 1.@Component spring容器通过反射自动创建对象
 *   @Bean 是用户自己手动创建对象
 * 2.@Component 标识的是类
 *   @Bean 标识配置类中的方法
 * 3.@Component 对象的Id是类名首字母小写
 *   @Bean 对象的Id是方法名
 */
@Component
public class User {
    //1.对象的创建
    public User() {
        System.out.println("用户创建对象成功!");
    }

    //2.进行初始化操作
    @PostConstruct //初始化注解
    public void init() {
        System.out.println("为属性赋值!");
    }

    //3.进行业务的调用,业务方法用户手动调用!
    public void hello() {
        System.out.println("我爱java!");
    }

    //4.销毁方法
    @PreDestroy //销毁方法
    public void destroy() {
        System.out.println("销毁方法,释放资源!");
    }
}
